<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 150px;
            height: 150px;
            border: 1px solid black;
            margin: 20px;
        }

        .default {

        }

        .orange {
            background: orange;
        }

        .skyblue {
            background: skyblue;
        }
    </style>
</head>

<body>
    <div id="app">
        <h3>组件</h3>
        <!-- 1. 在子组件标签上自定义属性 -->
        <!-- 2. 在子组件中通过props来接受 -->
        <!-- <com title="买好123导购网" num="100"/> -->
        <btn typee="aaaaa"/>
    </div>

    <template id="btn">
        <div>
            {{ typee }}
        </div>
    </template>

    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
    <script>

        Vue.component('btn', {
            template: "#btn",
            // 不仅能够接收属性，还能验证属性类型
            // props: {
            //     // Number  Boolean  String  Array  Object  Function
            //     type: Array
            // }

            // 不仅能够接收属性，还能验证属性类型, 
            props: {
                typee: {
                    // 验证类型
                    // type: String,
                    // 默认值  如果没有传递走默认值
                    // * 特殊情况  如果默认值为数组或者对象的情况，需要通过一个函数来返回 
                    // default: () => {
                    //     return {
                    //         name: "zhangsan"
                    //     }
                    // }
                    // 是否必传递
                    // required: true
                }
            }
        })

        const app = new Vue({
            el: "#app",
            data: {}
        })
    </script>
</body>

</html>